package com.xbongbong.workflow.pojo;

import com.xbongbong.workflow.pojo.nodes.ApprovalNode;
import com.xbongbong.workflow.pojo.nodes.CcNode;
import com.xbongbong.workflow.pojo.nodes.ConditionBlockNode;
import com.xbongbong.workflow.pojo.nodes.ConditionNode;
import com.xbongbong.workflow.pojo.nodes.DeleteRecordNode;
import com.xbongbong.workflow.pojo.nodes.FormTriggerNode;
import com.xbongbong.workflow.pojo.nodes.InsertRecordNode;
import com.xbongbong.workflow.pojo.nodes.ObtainMultiDataNode;
import com.xbongbong.workflow.pojo.nodes.ObtainSingleDataNode;
import com.xbongbong.workflow.pojo.nodes.SendMsgNode;
import com.xbongbong.workflow.pojo.nodes.UpdateRecordNode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.Valid;
import java.io.Serializable;

/**
 * 工作流节点核心配置，接收前端参数
 * @author 吴峰
 * @date 2021/05/11 10:38
 */
@Getter
@Setter
@ToString
public class WorkflowNodeCoreConfiguration implements Serializable {


    private static final long serialVersionUID = 2317324344637223980L;

    /**
     * 抄送节点
     */
    @Valid
    private CcNode ccNode;
    /**
     * 审批节点
     */
    @Valid
    private ApprovalNode approvalNode;
    /**
     * 节点块
     */
    private ConditionBlockNode conditionBlockNode;

    /**
     * 流转节点
     */
    @Valid
    private ConditionNode conditionNode;

    /**
     * 删除数据节点
     */
    @Valid
    private DeleteRecordNode deleteRecordNode;

    /**
     * 触发节点
     */
    @Valid
    private FormTriggerNode formTriggerNode;
    /**
     * 插入节点
     */
    @Valid
    private InsertRecordNode insertRecordNode;
    /**
     * 获取多条数据节点
     */
    @Valid
    private ObtainMultiDataNode obtainMultiDataNode;
    /**
     * 获取单条数据节点
     */
    @Valid
    private ObtainSingleDataNode obtainSingleDataNode;
    /**
     * 发送消息
     */
    @Valid
    private SendMsgNode sendMsgNode;
    /**
     * 更新记录节点
     */
    @Valid
    private UpdateRecordNode updateRecordNode;

}
